(skip-chars-forward "0-9")
(setq msg-num (string-to-int (buffer-substring beg (point))))
(or (eq rmail-current-message msg-num)
- (progn
+ (let (go-where window (owin (selected-window)))
(setq rmail-current-message msg-num)
(if (= (following-char) ?-)
(progn
(delete-char 1)
(insert " ")))
(setq window (display-buffer rmail-buffer))
- (save-window-excursion
- (select-window window)
- (rmail-show-message msg-num)))))))))
+ ;; Using save-window-excursion caused the new value
+ ;; of point to get lost.
+ (unwind-protect
+ (progn
+ (select-window window)
+ (rmail-show-message msg-num))
+ (select-window owin)))))))))
\f
(defvar rmail-summary-mode-map nil)
(save-excursion
(set-buffer rmail-buffer)
(rmail-only-expunge)
+ (set-buffer rmail-buffer)
(save-buffer))
(rmail-update-summary))
(interactive)
(save-excursion
(set-buffer rmail-buffer)
- (rmail-get-new-mail))
- (rmail-update-summary))
+ (rmail-get-new-mail)))
(defun rmail-summary-input (filename)
"Run Rmail on file FILENAME."
(defun rmail-summary-add-label (label)
"Add LABEL to labels associated with current Rmail message.
Completion is performed over known labels when reading."
- (interactive (list (rmail-read-label "Add label")))
+ (interactive (list (save-excursion
+ (set-buffer rmail-buffer)
+ (rmail-read-label "Add label"))))
(save-excursion
(set-buffer rmail-buffer)
(rmail-add-label label)))
(defun rmail-summary-kill-label (label)
"Remove LABEL from labels associated with current Rmail message.
Completion is performed over known labels when reading."
- (interactive (list (rmail-read-label "Add label")))
+ (interactive (list (save-excursion
+ (set-buffer rmail-buffer)
+ (rmail-read-label "Kill label"))))
(save-excursion
(set-buffer rmail-buffer)
(rmail-set-label label nil)))